Between a personal computer and peripheral devices such as a printer, a hard disk, and an image scanner, visual apparatuses such as a digital camera, and audio apparatuses (such terminal apparatuses are hereinafter referred to as “node”), considered is a network which is provided with nodes with a 1394 serial bus (hereinafter referred to as “1394 serial bus node”) to transfer a control signal or a main signal.
FIG. 11 is a drawing of an example of a physical layer circuit of a conventional node, which is a typical structure of a physical layer circuit described in p. 92 of IEEE Std. 1394-1995 (hereinafter referred to as “1394 physical layer circuit”) Incidentally, Japanese Laid-Open Patent Publication No. 98159/1999 (Tokukaihei 11-98159, published on Apr. 9, 1999) discloses a transmitting and receiving circuit having this type of physical layer circuit).
As shown in FIG. 11, the 1394 physical layer circuit is provided with three transceiver circuits 1105, 1106, and 1107 which are standardized with the IEEE Std. 1394-1995 (hereinafter referred to as “1394 metal transceiver circuit”), a DS-link encoder/decoder circuit 1102, a link layer interface circuit 1103, a bus arbitration circuit 1101, and a register circuit 1104.
Each of the 1394 metal transceiver circuits 1105, 1106, and 1107 passes a main signal (data signal) and a control signal with other node through two pairs of cables (buses).
The DS-link encoder/decoder circuit 1102 encodes/ decodes a data signal outputted from an upper layer, a link layer interface circuit 1103, by a DS-link encoding mode to transmit and receive it on the bus. The DS-link encoding mode is an encoding method of transmitting these data signal and strobe signal through a pair of lines, one line for the data signal and the other line for the strobe signal, where an exclusive OR of the data signal and the strobe signal is a sampling clock of a receiver-side node.
The link layer interface circuit 1103 passes the data signal and the control signal with a further upper layer, a link layer (not shown).
The bus arbitration circuit 1101 carries out various settings for operation of the 1394 physical layer circuits and controls timings for transmission of the data signal and the control signal to the 1394 serial bus. The bus arbitration circuit 1101 is connected to the register circuit 1104 in which operational conditions for the 1394 physical layer circuit are listed, and the 1394 physical layer circuit operates in accordance with the conditions listed in the register circuit 1104.
The register circuit 1104 is usually controlled by the link layer as an upper layer, and the link layer read and rewrite information in the register circuit 1104 via the link layer interface circuit 1103.
The contents listed in the register circuit 1104 are indicated in the form of a register map. For example, a register map of FIG. 2 shows the register map described in p. 341 of the IEEE Std. 1394-1995. According to the IEEE Std. 1394-1995, only a control operation by the link layer is allowed to rewrite information in the register map.
In the register map shown in FIG. 2, a maximum operation speed of the 1394 physical layer circuit is listed in a [SPD] region, which is stored in the high-order two bits at an address of 0010. Incidentally, the IEEE Std. 1394-1995 defines three types of maximum operation speeds (hereinafter referred to as “maximum speed”) of the 1394 physical layer circuit: 100 Mbps, 200 Mbps, and 400 Mbps (hereinafter referred to as “S100”, “S200”, and “S400”, respectively). The maximum speed is selected among these three types of the maximum speeds depending on the performance of the 1394 physical layer circuit.
Values in the [SPD] region inside the register map: (00), (01), and (10) correspond to the maximum speeds: S100, S200, and S400, respectively. For example, when (01) is set in the [SPD] region, a node transmits the control signal, which indicates a maximum speed that the self-node can process, to facing nodes which are connected to the respective 1394 metal transceiver circuits 1105, 1106, and 1107 of the self-node. As a result, the maximum speed of signals transmitted from the nodes becomes S200.
FIG. 12 is a timing chart from a Tree_ID phase to a Data Transfer phase with respect to the IEEE Std. 1394-1995, giving an example of a Peer to Peer connection between a node A and a node B. In FIG. 12, it is defined that both facing output ports of the node A and the node B have a maximum speed of S200, and the node A and the node B also have a maximum speed of S200. Furthermore, reference numerals 1201 through 1215 in FIG. 12 represents timings of transmitting and receiving codes with respect to each of the nodes.
Generally, in the IEEE Std. 1394-1995, each connected node first shifts to the Tree_ID phase. In the Tree_ID phase, the node that transmits a Parent_Notify and receives a Child_Notify becomes a child node, and the node that receives a Parent_Notify and transmits a Child_Notify becomes a parent node.
Operation in the above Tree_ID phase is carried out between all the facing nodes which are connected on the buses. With respect to each node, the node that last transmits a Child_Notify becomes a root to manage the bus in subsequent phases. In FIG. 12, the node A is a root.
After the Tree_ID phase ends, the phase is shifted to a Self_ID phase. In the Self_ID phase, all the nodes transmit on the buses their own node IDs and maximum speeds in accordance with a format of a Self_ID packet shown in FIG. 3.
With respect to the format of the Self_ID packet, the node_ID and the maximum speed of the self-node are assigned in fields of phy_ID and sp, respectively.
In FIG. 12, since both the node A and the node B have the maximum speed of S200, “01” which represents S200 is assigned in the sp field of the Self_ID packet. If a node has a maximum speed of S100, “00” is assigned in the sp field; if S400, “10” is assigned.
In the Self_ID phase, all the nodes transmit the respective Self_ID packets on the buses and receive the foregoing Self_ID packets, so that it is possible to know the maximum speed of all the nodes which exist on the buses.
Furthermore, since all the nodes on the buses must be able to receive the Self_ID packets, the IEEE Std. 1394-1995 defines that the Self_ID packet shall be transmitted at a speed of S100. In FIG. 12, in the Self_ID phase, the node A and the node B know each other to have a maximum speed of S200.
When all the nodes on the buses finishes to transmit their Self_ID packets, the phase is shifted to a Data Transfer phase, and then data transfer becomes possible under management of the root node.
In recent years, an attempt has been made to utilize the IEEE Std. 1394-1995 for networks at home. However, the IEEE Std. 1394-1995 defines that a maximum length of a metal cable shall be 4.5 m. This often requires inconvenience with regard to limitation of a cable length.
In this regard, a long-distance transmission can be provided by replacing at least one of the plurality of 1394 metal transceiver circuits in the 1394 physical layer circuit, for example, with an optical transceiver circuit, and by the channel replacing a metal cable with an optical fiber such as a POF (Plastic Optical Fiber).
In a DAVIC (Digital Audio-Visual Council), which is a standard for communications with a channel of an optical fiber, in order to secure a quality of a channel (a quality of communications), speed negotiation is carried out between nodes. As a communication speed gets high in the future, it becomes necessary to carry out speed negotiation between nodes so as to secure a quality of a channel, regardless of a channel of an optical fiber or a metal cable.
Here, considered is the case where the metal cable is replaced with the optical fiber, or the 1394 metal transceiver circuit is replaced with the optical transceiver circuit for expansion of a transmission distance, as described before.
In the channel of the metal cable, for example, when packets based on the IEEE Std. 1394-1995, which have transfer speeds of S100 and S200, respectively, are transmitted continuously, a receiver side generates a clock from an exclusive OR of a data signal and a strobe signal of a received packet, and samples data in accordance with the clock thus generated In this manner, it is possible to properly receive the foregoing continuous packets of different transfer speeds.
However, in communications with the channel of the optical fiber, the transfer speed of packets is high. This makes it impossible to carry out clock synchronization of received data in a packet cycle. As a result, it is impossible to carry out clock synchronization for each packet.
In this regard, the following method is used: before data communications is started, each pair of the facing transceiver circuits carries out speed negotiation to determine a maximum transfer speed at which they can communicate with each other. In the subsequent operation, the thus determined transfer speed is adopted in the data communications between the facing transceiver circuits.
However, degradation of the optical fiber or an optical fiber length causes increase in a rate of error occurrence (error rate) in a channel during data transfer, and this may stop data transfer of S200, despite, for example, a communication system in which optical transceiver circuits having the maximum speed of S200 are connected. In other words, when the error rate gets a certain value or more, data cannot be transferred in the channel. FIG. 13 is a timing chart from the Speed negotiation phase to the Data transfer phase in the aforementioned case. Incidentally, reference numerals 1301 through 1315 and 1320 through 1325 represent timings of transmitting and receiving of codes with respect to each of the nodes.
In FIG. 13, the node A and the node B transmit to each other a Higher_Speed, which is a code that represents a request for raise in transfer speed, at a transfer speed of S100 at the timings of 1320 and 1322. When receiving the Higher_Speed from each other, the node A and the node B recognize that transmitting and receiving is possible at the minimum transfer speed of S100. Further, since their own transceiver circuits have a maximum speed of S200, the nodes A and B transmits to each other a Keep_Speed, which is a code that represents a request for maintenance of transfer speed, at a transfer speed of S200 at the subsequent timings of 1324 and 1325. In case where the maximum speed of the nodes A and B exceeds S200, the above negotiation is repeatedly carried out until the communication speed becomes the maximum speed.
Since it is assumed in this case that an error rate is in such a degree that data cannot be transmitted and received at S200, the nodes A and B cannot receive the Keep_Speed from each other. Since they cannot receive the Keep_Speed at the transfer speed of S200, they give up their negotiation and transmit an End_Negotiation (not shown), which is a code that represents a request for end of speed negotiation, at a transfer speed of S100. When receiving the End_Negotiation from each other, they end the Speed Negotiation phase.
Since a sequence of the Tree_ID phase shown in FIG. 13 is the same as that of FIG. 12, an explanation of thereof is omitted here.
In a Self_ID phase, the node A and the node B input “01” in the respective sp fields of Self_ID Packets to transmit on the bus since their own transceiver circuits have the maximum speed of S200.
Further, when receiving the Self_ID Packet, which includes “01” in the sp field, transmitted by the node B, the node A recognizes that data transfer at S200 is possible. In a Data transfer phase, a physical layer circuit of the node A therefore outputs to its transceiver circuit data for instructing to transmit an Isochronous Packet of S200. The transceiver circuit of the node A transmits the Isochronous Packet of S200 at the timings of 1311, 1312, 1313, 1314, and 1315 at a transfer speed of S100.
In this case, it is impossible to properly transmit packets of S200 at the transfer speed of S100, and a possibility that an incorrect data is transmitted is very high.
Thus, FIG. 13 shows a Peer to Peer connection between the node A and the node B. However, even in case of daisy-chained plural nodes, a high error rate in a channel at some midpoint between nodes may make data transfer between both end of the nodes impossible.